دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [3 ed.]
نویسندگان: Burger. Burge
سری:
ISBN (شابک) : 9783031057434, 9783031057441
ناشر:
سال نشر: 2022
تعداد صفحات: [937]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 96 Mb
در صورت تبدیل فایل کتاب Digital Image Processing (2022) [Burger Burge] [9783031057434] به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب پردازش تصویر دیجیتال (2022) [برگر برج] [9783031057434] نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
پردازش تصویر دیجیتال (2022) [برگر برج] [9783031057434]
Digital Image Processing (2022) [Burger Burge] [9783031057434]
Preface Contents Part I Images and Pixels 1 Digital Images 1.1 Programming with Images 1.2 Image Analysis and Computer Vision 1.3 Types of Digital Images 1.4 Image Acquisition 1.4.1 The Pinhole Camera Model 1.4.2 The “Thin” Lens 1.4.3 Going Digital 1.4.4 Image Size and Resolution 1.4.5 Image Coordinate System 1.4.6 Pixel Values 1.5 Image File Formats 1.5.1 Raster Versus Vector Data 1.5.2 Tagged Image File Format (TIFF) 1.5.3 Graphics Interchange Format (GIF) 1.5.4 Portable Network Graphics (PNG) 1.5.5 JPEG 1.5.6 Legacy File Formats 1.5.7 Bits and Bytes 1.6 Software for Digital Imaging 1.7 ImageJ 1.7.1 Key Features 1.7.2 Interactive Tools 1.7.3 Working With ImageJ and Java 1.8 Exercises 2 Histograms and Image Statistics 2.1 What is a Histogram? 2.2 Interpreting Histograms 2.2.1 Image Acquisition 2.2.2 Image Defects 2.3 Calculating Histograms 2.4 Histograms of Images With More Than 8 Bits 2.4.1 Binning 2.4.2 Example 2.4.3 Implementation 2.5 Histograms of Color Images 2.5.1 Intensity Histograms 2.5.2 Individual Color Channel Histograms 2.5.3 Combined Color Histograms 2.6 The Cumulative Histogram 2.7 Statistical Information from the Histogram 2.7.1 Mean and Variance 2.7.2 Median 2.8 Block Statistics 2.8.1 Integral Images 2.8.2 Mean Intensity 2.8.3 Variance 2.8.4 Practical Calculation of Integral Images 2.9 Exercises 3 Point Operations 3.1 Modifying Image Intensity 3.1.1 Contrast and Brightness 3.1.2 Limiting Values by Clamping 3.1.3 Inverting Images 3.1.4 Thresholding Operation 3.2 Point Operations and Histograms 3.3 Automatic Contrast Adjustment 3.4 Modified Auto-Contrast Operation 3.5 Histogram Equalization 3.6 Histogram Specification 3.6.1 Frequencies and Probabilities 3.6.2 Principle of Histogram Specification 3.6.3 Adjusting to a Piecewise Linear Distribution 3.6.4 Adjusting to a Given Histogram (Histogram Matching) 3.6.5 Examples 3.7 Gamma Correction 3.7.1 Why “Gamma”? 3.7.2 Mathematical Definition 3.7.3 Real Gamma Values 3.7.4 Applications of Gamma Correction 3.7.5 Implementation 3.7.6 Modified Gamma Correction 3.8 Point Operations in ImageJ 3.8.1 Point Operations with Lookup Tables 3.8.2 Arithmetic Operations 3.8.3 Point Operations Involving Multiple Images 3.8.4 Methods for Point Operations on Two Images 3.8.5 ImageJ Plugins Involving Multiple Images 3.9 Exercises Part II Filters, Edges and Corners 4 Filters 4.1 What is a Filter? 4.2 Linear Filters 4.2.1 The Filter Kernel 4.2.2 Applying the Filter 4.2.3 Implementing Filter Operations 4.2.4 Filter Plugin Examples 4.2.5 Integer Coefficients 4.2.6 Filters of Arbitrary Size 4.2.7 Types of Linear Filters 4.3 Formal Properties of Linear Filters 4.3.1 Linear Convolution 4.3.2 Formal Properties of Linear Convolution 4.3.3 Separability of Linear Filters 4.3.4 Impulse Response of a Filter 4.4 Nonlinear Filters 4.4.1 Minimum and Maximum Filters 4.4.2 Median Filter 4.4.3 Weighted Median Filter 4.4.4 Other Nonlinear Filters 4.5 Implementing Filters 4.5.1 Efficiency of Filter Programs 4.5.2 Handling Image Borders 4.5.3 Debugging Filter Programs 4.6 Filter Operations in ImageJ 4.6.1 Linear Filters 4.6.2 Gaussian Filters 4.6.3 Nonlinear Filters 4.7 Exercises 5 Edges and Contours 5.1 What Makes an Edge? 5.2 Gradient-Based Edge Detection 5.2.1 Partial Derivatives and the Gradient 5.2.2 Derivative Filters 5.3 Simple Edge Operators 5.3.1 Prewitt and Sobel Edge Operators 5.3.2 Roberts Edge Operator 5.3.3 Compass Operators 5.3.4 Edge Operators in ImageJ 5.4 Other Edge Operators 5.4.1 Edge Detection Based on Second Derivatives 5.4.2 Edges at Different Scales 5.4.3 From Edges to Contours 5.5 Canny Edge Operator 5.5.1 Preprocessing 5.5.2 Edge Localization 5.5.3 Edge Tracing and Hysteresis Thresholding 5.5.4 Additional Information 5.5.5 Implementation 5.6 Edge Sharpening 5.6.1 Edge Sharpening with the Laplacian Filter 5.6.2 Unsharp Masking 5.7 Exercises 6 Corner Detection 6.1 Points of Interest 6.2 Harris Corner Detector 6.2.1 The Local Structure Matrix 6.2.2 Significance of the Local Structure Matrix 6.2.3 Corner Response Function (CRF) 6.2.4 Selecting Corner Points 6.2.5 Examples 6.3 Alternative Formulations 6.3.1 Shi-Tomasi Corner Score 6.3.2 MOPS Corner Score 6.4 Basic Implementation 6.4.1 Summary 6.5 Sub-Pixel Corner Positions 6.5.1 Position Interpolation by Second-Order Taylor Expansion 6.5.2 Sub-Pixel Positioning Example 6.6 Exercises Part III Binary Images 7 Morphological Filters 7.1 Shrink and Let Grow 7.1.1 Pixel Neighborhoods 7.2 Basic Morphological Operations 7.2.1 The Structuring Element 7.2.2 Point Sets 7.2.3 Dilation 7.2.4 Erosion 7.2.5 Formal Properties of Dilation and Erosion 7.2.6 Designing Morphological Filters 7.2.7 Application Example: Outline 7.3 Composite Morphological Operations 7.3.1 Opening 7.3.2 Closing 7.3.3 Properties of Opening and Closing 7.4 Thinning (Skeletonization) 7.4.1 Basic Algorithm 7.4.2 Fast Thinning Algorithm 7.4.3 Java Implementation 7.4.4 Built-in Morphological Operations in ImageJ 7.5 Grayscale Morphology 7.5.1 Structuring Elements 7.5.2 Dilation and Erosion 7.5.3 Grayscale Opening and Closing 7.6 Exercises 8 Regions in Binary Images 8.1 Finding Connected Image Regions 8.1.1 Region Labeling by Flood Filling 8.1.2 Sequential Region Segmentation 8.1.3 Region Labeling – Summary 8.2 Region Contours 8.2.1 Outer and Inner Contours 8.2.2 Combining Region Labeling and Contour Detection 8.3 Representing Image Regions 8.3.1 Matrix Representation 8.3.2 Run Length Encoding 8.3.3 Chain Codes 8.4 Properties of Binary Regions 8.4.1 Shape Features 8.4.2 Geometric Features 8.5 Statistical Shape Properties 8.5.1 Centroid 8.5.2 Moments 8.5.3 Central Moments 8.5.4 Normalized Central Moments 8.5.5 Java Implementation 8.6 Moment-Based Geometric Properties 8.6.1 Orientation 8.6.2 Region Eccentricity 8.6.3 Equivalent Ellipse 8.6.4 Bounding Box Aligned to the Major Axis 8.6.5 Invariant Region Moments 8.7 Projections 8.8 Topological Region Properties 8.9 Java Implementation 8.10 Exercises 9 Automatic Thresholding 9.1 Global Histogram-Based Thresholding 9.1.1 Image Statistics from the Histogram 9.1.2 Simple Threshold Selection 9.1.3 Iterative Threshold Selection (Isodata Algorithm) 9.1.4 Otsu’s Method 9.1.5 Maximum Entropy Thresholding 9.1.6 Minimum Error Thresholding 9.2 Local Adaptive Thresholding 9.2.1 Bernsen’s Method 9.2.2 Niblack’s Method 9.3 Java Implementation 9.3.1 Global Thresholding Methods 9.3.2 Adaptive Thresholding 9.4 Summary and Further Reading 9.5 Exercises Part IV Geometric Primitives 10 Fitting Straight Lines 10.1 Straight Line Equations 10.1.1 Slope-Intercept Form 10.1.2 Parametric (Point-Vector) Form 10.1.3 Algebraic Form 10.1.4 Hessian Normal Form 10.2 Fitting Lines to Points Sets 10.2.1 Linear Regression 10.2.2 Orthogonal Regression 10.3 Example: Contour Segmentation 10.4 Java Implementation 10.5 Exercises 11 Fitting Circles and Ellipses 11.1 Fitting Circles 11.1.1 Circle Equations 11.1.2 Algebraic Circle Fits 11.1.3 Geometric Circle Fitting 11.2 Fitting Ellipses 11.2.1 Algebraic Ellipse Fitting 11.2.2 Geometric Ellipse Fitting 11.2.3 Orthogonal Distance Approximations 11.3 Java Implementation 11.3.1 Circle Fitting 11.3.2 Ellipse Fitting 12 Detecting Geometric Primitives 12.1 Random Sample Consensus (RANSAC) 12.1.1 How Many Random Draws Are Needed? 12.1.2 RANSAC Line Detection Algorithm 12.1.3 Detecting Multiple Lines 12.1.4 RANSAC Circle Detection 12.1.5 RANDSAC Ellipse Detection 12.1.6 RANSAC Extensions and Applications 12.2 The Hough Transform 12.2.1 Parameter Space 12.2.2 Accumulator Map 12.2.3 A Better Line Representation 12.2.4 Hough Algorithm 12.2.5 Hough Transform Extensions 12.2.6 Hough Transform for Circles and Arcs 12.2.7 Hough Transform for Ellipses 12.3 Java Implementation 12.4 Exercises Part V Color 13 Color Images 13.1 RGB Color Images 13.1.1 Structure of Color Images 13.1.2 Color Images in ImageJ 13.2 Color Spaces and Color Conversion 13.2.1 Conversion to Grayscale 13.2.2 Desaturating RGB Color Images 13.2.3 HSV/HSB and HLS Color Spaces 13.2.4 TV Component Color Spaces: YUV, YIQ, and YCbCr 13.2.5 Color Spaces for Printing: CMY and CMYK 13.3 Statistics of Color Images 13.3.1 How Many Different Colors Are in an Image? 13.3.2 Color Histograms 13.4 Color Quantization 13.4.1 Scalar Color Quantization 13.4.2 Vector Quantization 13.4.3 Java Implementation 13.5 Exercises 14 Colorimetric Color Spaces 14.1 CIE Color Spaces 14.1.1 CIE XYZ Color Space 14.1.2 CIE x, y Chromaticity 14.1.3 Standard Illuminants 14.1.4 Gamut 14.1.5 Variants of the CIE Color Space 14.2 CIELAB Color Space 14.2.1 CIEXYZ → CIELAB Conversion 14.2.2 CIELAB → CIEXYZ Conversion 14.3 CIELUV Color Space 14.3.1 CIEXYZ → CIELUV Conversion 14.3.2 CIELUV→ CIEXYZ Conversion 14.3.3 Measuring Color Differences 14.4 Standard RGB (sRGB) 14.4.1 Linear vs. Nonlinear Color Components 14.4.2 CIEXYZ → sRGB Conversion 14.4.3 sRGB → CIEXYZ Conversion 14.4.4 Calculations with Nonlinear sRGB Values 14.5 Adobe RGB 14.6 Chromatic Adaptation 14.6.1 XYZ Scaling 14.6.2 Bradford Color Adaptation 14.7 Colorimetric Support in Java 14.7.1 Profile Connection Space (PCS) 14.7.2 Color-Related Java Classes 14.7.3 Implementation of the CIELAB Color Space (Example) 14.7.4 ICC Profiles 14.8 Exercises 15 Filters for Color Images 15.1 Linear Filters 15.1.1 Monochromatic Application of Linear Filters 15.1.2 Color Space Matters 15.1.3 Linear Filtering with Circular Values 15.2 Nonlinear Color Filters 15.2.1 Scalar Median Filter 15.2.2 Vector Median Filter 15.2.3 Sharpening Vector Median Filter 15.3 Java Implementation 15.4 Further Reading 15.5 Exercises 16 Edge Detection in Color Images 16.1 Monochromatic Techniques 16.2 Edges in Vector-Valued Images 16.2.1 Multi-Dimensional Gradients 16.2.2 The Jacobian Matrix 16.2.3 Squared Local Contrast 16.2.4 Color Edge Magnitude 16.2.5 Color Edge Orientation 16.2.6 Grayscale Gradients Revisited 16.3 Canny Edge Detector for Color Images 16.4 Other Color Edge Operators 16.5 Java Implementation 16.6 Exercises 17 Edge-Preserving Smoothing Filters 17.1 Kuwahara-Type Filters 17.1.1 Application to Color Images 17.2 Bilateral Filter 17.2.1 Domain Filter 17.2.2 Range Filter 17.2.3 Bilateral Filter: General Idea 17.2.4 Bilateral Filter with Gaussian Kernels 17.2.5 Application to Color Images 17.2.6 Efficient Implementation by x/y Separation 17.2.7 Further Reading 17.3 Anisotropic Diffusion Filters 17.3.1 Homogeneous Diffusion and the Heat Equation 17.3.2 The Perona-Malik Filter 17.3.3 Perona-Malik Filter for Color Images 17.3.4 Geometry Preserving Anisotropic Diffusion 17.3.5 Tschumperlé-Deriche Algorithm 17.4 Java Implementation 17.5 Exercises Part VI Spectral Techniques 18 Introduction to Spectral Methods 18.1 The Fourier Transform 18.1.1 Sine and Cosine Functions 18.1.2 Fourier Series Representation of Periodic Functions 18.1.3 Fourier Integral 18.1.4 Fourier Spectrum and Transformation 18.1.5 Fourier Transform Pairs 18.1.6 Important Properties of the Fourier Transform 18.2 Working with Discrete Signals 18.2.1 Sampling Assume 18.3 The Discrete Fourier Transform (DFT) 18.3.1 Definition of the DFT 18.3.2 Discrete Basis Functions 18.3.3 Aliasing Again! 18.3.4 Units in Signal and Frequency Space 18.3.5 Power Spectrum 18.4 Implementing the DFT 18.4.1 Direct Implementation 18.4.2 Fast Fourier Transform (FFT) 18.5 Exercises 19 The Discrete Fourier Transform in 2D 19.1 Definition of the 2D DFT 19.1.1 2D Basis Functions 19.1.2 Implementing the 2D DFT 19.2 Visualizing the 2D Fourier Transform 19.2.1 Range of Spectral Values 19.2.2 Centered Representation of the DFT Spectrum 19.3 Frequencies and Orientation in 2D 19.3.1 Effective Frequency 19.3.2 Frequency Limits and Aliasing in 2D 19.3.3 Orientation 19.3.4 Normalizing the Geometry of the 2D Spectrum 19.3.5 Effects of Periodicity 19.3.6 Windowing 19.3.7 Common Windowing Functions 19.4 2D Fourier Transform Examples 19.5 Applications of the DFT 19.5.1 Linear Filter Operations in Frequency Space 19.5.2 Linear Convolution and Correlation 19.5.3 Inverse Filters 19.6 Exercises 20 The Discrete Cosine Transform (DCT) 20.1 One-Dimensional DCT 20.1.1 DCT Basis Functions 20.1.2 Implementing the 1D DCT 20.2 Two-Dimensional DCT 20.2.1 Examples 20.2.2 Separability 20.3 Java Implementation 20.4 Other Spectral Transforms 20.5 Exercises Part VII Image Transformations 21 Geometric Operations 21.1 Coordinate Transformations in 2D 21.1.1 Linear Coordinate Transformations 21.1.2 Homogeneous Coordinates 21.1.3 Affine (Three-Point) Mapping 21.1.4 Projective (Four-Point) Mapping 21.1.5 Bilinear Mapping 21.1.6 Log-Polar Mapping 21.1.7 Other Nonlinear Transformations 21.1.8 Piecewise Image Transformations 21.2 Resampling the Image 21.2.1 Source-to-Target Mapping 21.2.2 Target-to-Source Mapping 21.3 Java Implementation 21.3.1 Geometric Transformations 21.3.2 Image Transformations 21.3.3 Examples 21.4 Exercises 22 Pixel Interpolation 22.1 Interpolation in 1D: Simple Methods 22.1.1 Nearest-Neighbor Interpolation 22.1.2 Linear Interpolation 22.1.3 Ideal Low-Pass Filter 22.2 Interpolation by Convolution 22.3 Cubic Interpolation 22.4 Spline Interpolation 22.4.1 Catmull-Rom Interpolation 22.4.2 Cubic B-spline Approximation 22.4.3 Mitchell-Netravali Approximation 22.4.4 Lanczos Interpolation 22.5 Interpolation in 2D 22.5.1 Nearest-Neighbor Interpolation in 2D 22.5.2 Bilinear Interpolation 22.5.3 Bicubic and Spline Interpolation in 2D 22.5.4 Lanczos Interpolation in 2D 22.5.5 Examples and Discussion 22.6 Aliasing 22.6.1 Sampling the Interpolated Image 22.6.2 Space-Variant Low-Pass Filtering 22.7 Java Implementation 22.8 Exercises Part VIII Image Matching 23 Image Matching and Registration 23.1 Template Matching in Intensity Images 23.1.1 Distance between Image Patterns 23.1.2 Matching Under Rotation and Scaling 23.1.3 Java Implementation 23.2 Matching Binary Images 23.2.1 Direct Comparison of Binary Images 23.2.2 The Distance Transform 23.2.3 Chamfer Matching 23.2.4 Java Implementation 23.3 Exercises 24 Non-Rigid Image Matching 24.1 The Lucas-Kanade Technique 24.1.1 Registration in 1D 24.1.2 Extension to Multi-Dimensional Functions 24.2 The Lucas-Kanade Algorithm 24.2.1 Summary of the Algorithm 24.3 Inverse Compositional Algorithm 24.4 Linear Transformation Parameters 24.4.1 Pure Translation 24.4.2 Affine Transformation 24.4.3 Projective Transformation 24.4.4 Concatenating Linear Transformations 24.4.5 Coordinate Frames 24.5 Example 24.6 Java Implementation 24.7 Exercises Part IX Local Features 25 Scale-Invariant Feature Transform (SIFT) 25.1 Interest Points at Multiple Scales 25.1.1 The LoG Filter 25.1.2 Gaussian Scale Space 25.1.3 LoG/DoG Scale Space 25.1.4 Hierarchical Scale Space 25.1.5 Scale Space Structure in SIFT 25.2 Key Point Selection and Refinement 25.2.1 Local Extrema Detection 25.2.2 Position Refinement 25.2.3 Suppressing Responses to Edge-Like Structures 25.3 Creating Local Descriptors 25.3.1 Finding Dominant Orientations 25.3.2 SIFT Descriptor Construction 25.4 SIFT Algorithm Summary 25.5 Matching SIFT Features 25.5.1 Feature Distance and Match Quality 25.5.2 Examples 25.6 Efficient Feature Matching 25.7 Java Implementation 25.7.1 SIFT Feature Extraction 25.7.2 SIFT Feature Matching 25.8 Exercises 26 Maximally Stable Extremal Regions (MSER) 26.1 Threshold Sets and Extremal Regions 26.2 Building the Component Tree 26.2.1 Component Tree Algorithms 26.2.2 Component Tree Algorithm 1: Global Immersion 26.2.3 Component Tree Algorithm 2: Local Flooding 26.2.4 Component Tree Examples 26.3 Extracting MSERs from the Component Tree 26.3.1 Component Size Variation (Growth Rate) 26.3.2 Maximally Stable Components 26.3.3 Constraints on Component Size and Diversity 26.3.4 MSER Feature Statistics and Equivalent Ellipse 26.3.5 Additional Constraints 26.3.6 Detecting Dark And Bright Blobs 26.3.7 MSER Examples 26.4 Matching MSERs 26.5 Local Affine Frames 26.6 Summary Appendix Appendix A Mathematical Symbols and Notation A.1 Symbols A.2 Sets A.2.1 Basic Set Symbols and Operators A.2.2 Destructive Set Operators A.2.3 Relations, Mappings and Functions A.3 Sequences A.3.1 Adding and Removing Elements A.3.2 “Stack”-Type Sequences A.3.3 “Queue”-Type Sequences A.3.4 Sorting Sequences A.4 Tuples and Objects A.4.1 Type Definition and Instantiation A.4.2 Accessing Object Components A.4.3 Duplication A.5 Complex Numbers Appendix B Linear Algebra B.1 Vectors and Matrices B.1.1 Column and Row Vectors B.1.2 Extracting Submatrices and Vectors B.1.3 Length (Norm) of a Vector B.2 Matrix Multiplication B.2.1 Scalar Multiplication B.2.2 Product of Two Matrices B.2.3 Matrix-Vector Products B.3 Vector Products B.3.1 Dot (Scalar) Product B.3.2 Outer Product B.3.3 Cross Product B.4 Trace and Determinant of a Square Matrix B.5 Eigenvalues and Eigenvectors B.5.1 Calculating Eigenvalues B.5.2 Generalized Symmetric Eigenproblems B.6 Homogeneous Coordinates B.7 Basic Matrix-Vector Operations with the Apache Commons Math Library B.7.1 Vectors and Matrices B.7.2 Matrix-Vector Multiplication B.7.3 Vector Products B.7.4 Inverse of a Square Matrix B.7.5 Eigenvalues and Eigenvectors B.8 Solving Systems of Linear Equations B.8.1 Exact Solutions B.8.2 Over-Determined System (Least-Squares Solutions) B.8.3 Solving Homogeneous Linear Systems Appendix C Nonlinear Least Squares C.1 Nonlinear Least-Squares Fitting C.2 Solution Methods C.2.1 Implementation With Apache Commons Math C.2.2 Example 1: One-Dimensional Curve Fitting C.3 Multi-Dimensional NLS Problems C.3.1 Example 2: Geometric Circle Fitting C.3.2 Numerical Estimation of Partial Derivatives Appendix D Elements from Calculus D.1 Scalar and Vector Fields D.1.1 The Jacobian Matrix D.1.2 Gradients D.1.3 Maximum Gradient Direction D.1.4 Divergence of a Vector Field D.1.5 The Laplacian Operator D.1.6 The Hessian Matrix D.2 Taylor Series Expansion D.2.1 Single-Variable Functions D.2.2 Multi-Variable Functions D.2.3 Finding Function Extrema by 2nd-Order Taylor Expansion D.3 Estimating Derivatives of Discrete Functions D.3.1 First-order Derivatives D.3.2 Second-Order Derivatives D.3.3 Alternative Formulations Appendix E Sub-Pixel Maximum Finding E.1 Second-Order Interpolation in 1D E.2 Subpixel Interpolation in 2D E.2.1 Quadratic Functions in 2D E.2.2 Method A: Second-Order Taylor Interpolation E.2.3 Method B: Least-Squares Quadratic Interpolation E.2.4 Quartic Interpolation Appendix F Geometry F.1 Straight Lines F.1.1 Conversions Between Different Line Equations F.1.2 Intersections of Algebraic Lines F.1.3 Intersections of Lines in Hessian Normal Form F.1.4 Numeric Line Fitting Examples F.2 Circles F.2.1 Circle Equations and Conversions F.2.2 Circle From 3 Points F.3 Ellipses F.3.1 Ellipse Equations F.3.2 Converting Between Algebraic and Geometric Parameters F.3.3 Ellipse From 5 Points Appendix G Statistical Prerequisites G.1 Mean, Variance, and Covariance G.1.1 Mean G.1.2 Variance and Covariance G.1.3 Biased vs. Unbiased Variance G.2 The Covariance Matrix G.2.1 Example G.2.2 Practical Calculation G.3 Mahalanobis Distance G.3.1 Definition G.3.2 Relation to the Euclidean Distance G.3.3 Numerical Considerations G.3.4 Pre-Mapping Data For Efficient Mahalanobis Matching G.4 The Gaussian Distribution G.4.1 Maximum Likelihood Estimation G.4.2 Gaussian Mixtures G.4.3 Creating Gaussian Noise Appendix H Gaussian Filters H.1 Cascading Gaussian Filters H.2 Gaussian Filters and Scale Space H.3 Effects of Gaussian Filtering in the Frequency Domain H.4 LoG-Approximation by Difference of Gaussians (DoG) Appendix I Writing ImageJ Plugins I.1 ImageJ Plugins I.1.1 Program Structure I.1.2 A First Example: Inverting an Image I.1.3 Plugin My_Inverter_A (PlugInFilter) I.1.4 Plugin My_Inverter_B (PlugIn) I.1.5 When To Use PlugIn Or PlugInFilter? I.1.6 Executing ImageJ “Commands” I.1.7 ImageJ’s Command Recorder Appendix J Java Notes J.1 Arithmetic J.1.1 Integer Division J.1.2 Modulus Operator J.1.3 Mathematical Functions in Class Math J.1.4 Numerical Rounding J.1.5 Inverse Tangent Function J.1.6 Unsigned Byte Data J.1.7 Classes Float and Double J.1.8 Testing Floating-Point Values Against Zero J.2 Arrays J.2.1 Creating Arrays J.2.2 Array Size J.2.3 Accessing Array Elements J.2.4 2D Arrays J.2.5 Arrays of Objects J.2.6 Searching for Minimum and Maximum Values J.2.7 Sorting Arrays References Index About the Authors